1. Field of the Invention
The present invention relates generally to clustered computer graphics systems and, more particularly to the generation of sequences and interrupts between the participating nodes in the system.
2. Background Art
Obtaining visual realism is crucial in computer graphics systems. To this end, it is often necessary to produce multiple levels of images on a single display device (e.g., a CRT, LCD, active matrix or plasma display). In the alternative, some graphics systems seek to achieve visual reality by generating a large visual image across multiple display devices. Flight simulation applications are an example where multiple display devices are used. Each display contributes to the overall image by providing either a front, left, or right view of the scene. As the simulated flight progresses, each of the front, left, and right views change. Proper synchronization between the various display devices is key to maintaining the reality of the scene being presented. Load balancing is another application that requires synchronization. Computations for generating a scene are distributed among multiple processors such that the calculations are performed separately. Synchronization is necessary to ensure that each processor is providing the appropriate data for the common scene being generated.
Synchronization is made difficult, however, by the varying complexities of the images being presented on the various displays. As a result, many graphics systems will become desynchronized and produce visual artifacts or distortions in the resulting image. Previous attempts to prevent the occurrence of these distortions have been directed to hardware solutions at the graphics pipeline level.
What is needed is a solution that will work with off-the-shelf (i.e., commercially available) hardware.
Additionally, in many cases multiple computers or nodes are used to generate the overall scene being presented across the single or multiple display devices. Accordingly, each computer can be responsible, for example, for generating a particular part of the scene such as a front, left, or right view of the scene. In another design, one or more computers could be assigned the task of calculating the models for rendering the scene while another computer is assigned the task of drawing the scene. Indeed, other designs may delegate the operations performed in graphics processing.
The multiple computers or nodes are separate devices; thus, the potential for the computers to become desynchronized is increased. Accordingly, to maintain the visual realism of the scene being generated, it is also necessary to synchronize the computations in the multiple computers or nodes. Furthermore, it may at times be desirable to have the graphics processing be completed in a particular sequence. Heretofore, in order to achieve such ordering, one would have to rely upon the exchange of data packets to trigger certain events upon receipt. However, this approach is processor intensive. Further, the exchange of data packets is subject to network latency and therefore non deterministic. Any delay is likely to lead to desynchronization and could potentially result in the creation of visual distortions.
Thus, what is also needed is a solution for generating sequences and interrupts between the multiple nodes which is robust and deterministic.